package com.hb.core.pojo.center.au.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.fzzn.core.model.enums.AuditStatusEnum;
import org.fzzn.core.util.Enums;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 企业专属配置信息
 *
 * @author zhaojk
 * @since 2022-04-12
 */
@Data
@ApiModel(value = "企业专属配置信息VO对象", description = "企业专属配置信息")
public class OrgCustomConfigVO {

    @ApiModelProperty(value = "主键ID")
    private Long id;

    @ApiModelProperty(value = "企业id")
    private Long orgId;

    /**
     * 私有专家库账号
     */
    @ApiModelProperty(value = "私有专家库账号")
    private String expertUsername;
    /**
     * 私有专家库密码
     */
    @ApiModelProperty(value = "私有专家库密码")
    private String expertPassword;

    /**
     * 企业自定义域名(交易平台)
     * 格式：验证格式，只能包括26个英文字母、“0-9”数字和“-.”英文中的连接号，但开头和结尾不能含有连接号，不区分大小写字母
     * 填写域名后系统需要去重，如果一级域名下已有该子域名，则输入框外提示【域名重复，请重新填写】；
     */
    @ApiModelProperty(value = "企业自定义域名(交易平台)", required = true)
    private String domainNameTrade;

    /**
     * 企业自定义域名(门户)
     */
    @ApiModelProperty(value = "企业自定义域名(门户)", required = true)
    private String domainNamePortal;

    /**
     * 企业自定义域名(专家系统)
     */
    @ApiModelProperty(value = "企业自定义域名(专家系统)", required = true)
    private String domainNameExpert;

    /**
     * 公司电话
     */
    @ApiModelProperty(value = "公司电话")
    private String orgPhone;

    /**
     * 公司邮箱
     */
    @ApiModelProperty(value = "公司邮箱")
    private String orgEmail;

    /**
     * 公司地址
     */
    @ApiModelProperty(value = "公司地址")
    private String orgAddress;

    @ApiModelProperty(value = "企业自定义logo名称")
    private String logoName;

    /**
     * 平台定义的后缀名称, 该字段仅作展示用
     */
    @ApiModelProperty(value = "平台定义的后缀名称", required = true)
    private String suffixName;

    @ApiModelProperty(value = "企业自定义logo(url地址, 46*46)")
    private String logoUrl1;

    @ApiModelProperty(value = "企业自定义logo(url地址, 36*36)")
    private String logoUrl2;

    @ApiModelProperty(value = "企业自定义logo(url地址, 32*32)")
    private String logoUrl3;

    @ApiModelProperty(value = "企业自定义公司名称")
    private String orgName;

    @ApiModelProperty(value = "审核状态")
    private Integer auditStatus;

    @ApiModelProperty(value = "审核状态名称")
    private String auditStatusName;

    @ApiModelProperty(value = "审核时间")
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditTime;

    @ApiModelProperty(value = "提交人名称")
    private String createName;

    @ApiModelProperty(value = "提交时间", required = true)
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime  createTime;

    @ApiModelProperty(value = "审核未通过原因")
    private String reason;

    public String getAuditStatusName() {
        if (auditStatus != null) {
            AuditStatusEnum auditStatusEnum = Enums.of(AuditStatusEnum.class, auditStatus);
            return auditStatusEnum.getShowName();
        }
        return auditStatusName;
    }

    public void setAuditStatusName(String auditStatusName) {
        this.auditStatusName = auditStatusName;
    }


    /**
     * 主公司-企业自定义域名(交易平台)
     */
    @TableField(exist = false)
    private String domainNameTradeByMain;
    /**
     * 主公司-企业自定义域名(门户)
     */
    @TableField(exist = false)
    private String domainNamePortalByMain;
    /**
     * 主公司-企业自定义域名(专家系统)
     */
    @TableField(exist = false)
    private String domainNameExpertByMain;
    /**
     * 主公司-审核状态(分公司信息展示使用)
     */
    @TableField(exist = false)
    private Integer auditStatusByMain;

    /**
     * 公司级别（1，主公司，2，分公司）
     */
    @TableField(exist = false)
    private Integer companyLevel;

    /**
     * 企业自定义公司名称
     */
    @TableField(exist = false)
    private String customName;
}
